This application relates generally to determining a seek profile in a data storage device and more particularly to a system and/or method for automatically determining disc drive seek profiles for use in command queue ordering.
Modern hard disc drives comprise one or more rigid discs that are coated with a magnetizable medium and mounted on a hub of a spindle motor for rotation at a constant high speed about a rotational axis. Information is stored on one or more surfaces of the disc or discs in a plurality of concentric circular tracks. An aggregate of tracks on the surfaces of a disc or discs at a given radial position from the rotational axis is referred to as a cylinder. Data is written to, and/or read from, sectors on the tracks via transducers (xe2x80x9cheadsxe2x80x9d) mounted to a radial actuator, which positions the heads relative to the discs. The read/write elements are typically positioned over specific sectors of the disc in accordance with commands received from a host computer.
Typical disc drives use microprocessors to execute commands received from the host computer. Often, the disc drive will receive commands from the host faster than the commands can be processed by the microprocessor. When this occurs, the commands which are waiting to be executed are typically queued or cached in a xe2x80x9ccommand queuexe2x80x9d for later processing. As the commands coming into the disc drive are not necessarily received in an optimal order for processing, optimization of the queued commands is desirable. For example, a disc drive may receive commands to read and write data at a variety of locations on the hard discs within the disc drive. Optimally, these commands would be processed in a manner which would minimize the movement of the disc drives read/write heads across the disc. Ordering the commands in this manner is called command queue reordering. Command queue reordering allows for a more efficient use of the microprocessor as well as a more efficient use of the hardware being controlled by the microprocessor.
Traditionally, disc drives have sorted commands in an order that minimizes latency between the various commands. To determine if a seek can be completed within a given amount of latency, the seek time must be calculated. The seek time is the time required for the read/write element to radially move across or traverse cylinders between the present cylinder over which the read/write element is positioned and the cylinder to be addressed by the particular command. To determine the seek time for a particular command, disc drives often use what is referred to as a seek profile to define seek times versus seek distance in the disc drive. Often this seek profile is implemented as a seek time array containing entries for various seek times versus seek distance on the disc drive. This seek time array may be used on its own or, alternatively, a seek time array may be used as a single element or input into a more complex command queue reordering process that takes into account the rotational latency of the disc drive in determining the optimal order of commands in the command queue. An example of one such process is rotational position sorting (RPS). One rotational position sorting process is described in U.S. Pat. No. 5,570,332 for xe2x80x9cMethod for Reducing Rotational Latency in a Disc Drivexe2x80x9d to Heath, et al., which is incorporated herein by this reference.
In its most precise form, a seek profile would indicate the precise seek time for each seek distance that may be traversed in a disc drive. For example, this type of seek profile could comprise a seek time array containing an individual entry for each possible seek distance on a disc. Unfortunately, as modern disc drives contain tens of thousands of tracks on a single disc, the memory requirements for storing and maintaining a comprehensive seek time array of this type is prohibitive. One approach that has been used to reduce the memory requirements of seek profiles involves using a partial seek time array to compute seek times for relatively short seeks and a simple linear equation to compute seek times for relatively longer seek distances. This approach takes advantage of a particular characteristic of the overall seek profile of many, particularly older, disc drives. That is, the relationship between seek times and seek distances in the portion of the seek profile corresponding to relatively longer seek times is substantially linear. As such, the seek profile in this so called xe2x80x9clinear regionxe2x80x9d can be characterized using a linear equation that, in turn, is used to predict a seek time for a given seek distance. In contrast, the relationship between seek times and seek distances in the portion of the seek profile corresponding to relatively shorter seek times is substantially non-linear. As such, a partial seek time array is used to compute seek times in this xe2x80x9cnon-linearxe2x80x9d region of the seek profile, where a simple linear equation would not accurately model the seek profile.
The seek time array, as described so far, may be either static or dynamic. A static seek time array is a precomputed look-up table constructed from a static seek profile. The static seek profile consists of piecewise-linear approximations of actual seek performance. These approximations are typically determined manually by a test engineer after viewing a graph or some other representation of actual seek times versus seek distances as measured in a representative disc drive of a particular model type. The piecewise-linear approximation typically comprises a number of straight line segments, each assigned to a non-overlapping range of seek lengths, which together estimate performance for seeks within the non-linear range. This piecewise-linear approximation is then used to construct the look-up table of the static seek time array, which is stored in memory on the disc drive for use during operation.
While the use of a static seek time array in the manner just described has proven relatively effective, there are still a number of problems associated therewith. One such problem relates to the manner in which straight line segments for the piecewise-linear approximations defining the static seek time array are determined. As mentioned, these segments are typically defined manually as approximations of the actual seek performance by a test engineer after viewing seek data taken from a representative disc drive. As such, the accuracy of these approximations is limited by the skill, or the lack thereof, of the test engineer who makes these approximations. Another problem associated with the way static seek arrays of this type array are determined is that the seek characteristics of a given model of disc drive may vary significantly from drive to drive. As such, a static seek time array that is computed based on the results of one representative drive of a particular model, may not be accurate for other drives of the same model. Additionally, seek characteristics of a single disc drive may change measurably over time, thus degrading the accuracy of the static seek array.
An alternative to the static seek time array, and one that addresses some of the noted problems of the static seek array, is a dynamic or adaptive seek time array. Similar to the static seek array, the adaptive seek array is an array or look-up table containing estimated seek times required for read/write element to traverse a given seek distance or length, in cylinders. The adaptive seek array typically uses the static seek array to initialize its look-up table. However, each time read/write element traverses a given number of cylinders to execute a command, the system or firmware of the disc drive senses the actual seek time necessary for the read/write element to traverse the given seek distance. Based on the sensed actual seek times for seek distances, the estimated seek times corresponding to seek distances within the adaptive seek array are modified.
While an adaptive seek array addresses some of the problems of the static seek array, adaptive seek arrays still retain some of the problems noted above with respect to static seek arrays. For example, as described, the values of the static seek array are typically used to initialize the look-up table of the static seek array. As such, the initial values of the static seek array are based on values taken from a representative drive rather than from the disc drive in which the static seek array is deployed. While these values will be modified over the course of operation of the disc drive to more closely match the characteristics of that particular disc drive, the disc drive employing the adaptive seek array may need to be operated for some time before the values of the adaptive seek array approach or match the true seek characteristics of the disc drive. In the case where the disc drive must reinitialize the adaptive seek profile every time the drive is restarted, the adaptive seek array may never approach or match the true seek characteristics of the disc drive. Additionally, in the case where performance bench testing is performed on the disc drive, the disc drive is typically not operated in a manner or time that is sufficient for the adaptive seek array to adjust to match the true seek characteristics of the disc drive.
Another problem associated with the above described methods relates to the use of a single linear equation to characterize the seek profile in the xe2x80x9clinear region.xe2x80x9d As is known, many modern disc drives employ a servo loop control algorithm that uses different sets of control parameters for different ranges of seek distances to control the movement of the read/write transducers of the disc drive during track seek operations. For example, one set of control parameters may be used to carry out seek operations having seek lengths in the range of one-thousand and two-thousand cylinders, while another set of control parameters may be used to carry out seek operations having seek lengths within the range of two-thousand and three-thousand cylinders, and so on. One affect of using different sets of control parameters for different seek ranges is that the so called xe2x80x9clinear regionxe2x80x9d of the disc drives seek profile is no longer linear. In fact, this xe2x80x9clinear regionxe2x80x9d may have a number of significant non-linearities or discontinuities. As such, a single linear equation will not accurately model the xe2x80x9clinear regionxe2x80x9d of the seek profile of a disc drive using a servo loop control algorithm that employs multiple sets of control parameters.
It is against this backdrop that the present invention has been developed.
Various embodiments of the present invention relate to methods and systems for accurately predicting seek times for given seek distances in a data storage device. Additionally, various embodiments relate to the automatic compilation and storage of seek time arrays and/or seek time lists in a disc drive device. More particular, various methods described herein relate to automatically compiling a seek time list in a disc drive based on seek time entries located in a servo data table located in the disc drive.
One method described herein relates a method for determining an estimated seek time for a transducer to travel a given seek distance in a data storage device, In this method, a seek time array is used in conjunction with a seek time list to determine estimated seek times in a disc drive. In one embodiment, the seek time array defines one to one relationships between seek times and seek distances in a first range of seek distances. For example, the seek time array may contain a plurality of ordered pairs, each ordered pair including a seek time and an associated seek distance. To determine a seek time for a given seek distance occurring in the first range of seek distance, the seek array is searched for an ordered pair including the given seek distance and the associated seek time is then used to predict the seek time for the transducer to travel the given seek distance.
In contrast to the seek time array, the seek time list defines a series of linear relationships between seek times and seek distances in a second range of seek distances. The seek time list may include sets of ordered pairs, wherein each set of ordered pairs defines a relationship between a seek times and seek distances with a sub-range of the second range of seek distances. Then, to determine a seek time for the given seek distance occurring in the second range of seek distance, the appropriate set of ordered pairs is located, and that set of ordered pairs is used to predict the seek time required for the transducer to travel the given seek distance.
Also described herein are methods and systems relating compiling the seek time array and the seek time list. These and various other features as well as advantages which characterize the present invention will be apparent from a reading of the following detailed description and a review of the associated drawings.